using System;
using System.Collections.Generic;
using L2NH.Core.Domain;

namespace L2NH.Core
{
   public interface IRepository
   {
      T Get<T>(int id) where T : Entity;
      T Load<T>(int id) where T : Entity;

      IEnumerable<T> FindAll<T>() where T : Entity;

      void Add<T>(T entity) where T : Entity;
      void Remove<T>(T entity) where T : Entity;

      void SubmitChanges();
   }
}